#ifndef SEMAFORO_H
#define SEMAFORO_H

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <unistd.h>

#include <stdio.h>
#include <stdlib.h>

#define ROJO 0
#define VERDE 1

#define SEM_ID_CACHE 1 //identificador de semaforo para la buffer cache
#define SEM_ID_STRUCT 2 //identificador de semaforo para la struct file

/* Funcion que crea un semaforo con el identificador ID y lo inicializa con 
 * el valor s0 (0 = rojo, 1=verde)  */
int semInit(int ID, int s0);

/* Funcion que comprueba el valor de un semaforo  */
int semAt(int ID);

/* Funcion que elimina un semaforo */
void semFree(int S);

/* Funcion que intenta coger un semaforo. Si el sem�foro ya esta ocupado,
 * el proceso duerme hasta que se libera  */
int semWait(int S);

/* Funcion que libera un semaforo */
int semSignal(int S);

#endif

